﻿#pragma once

#include <xy/ais/object.h>
#include <xy/geom/mesh.h>

namespace xy
{

namespace ais
{

class mesh : public object
{
  public:
    /**
     * @brief 几何数据构造
     *
     * @param[in] mesh
     */
    explicit mesh(std::shared_ptr<geom::mesh> meshData);

    /**
     * @brief 获得网格数据
     *
     * @return std::shared_ptr<geom::mesh>
     */
    std::shared_ptr<geom::mesh> mesh_data() const;

    /**
     * @brief 初始化消息
     *
     * @param[in] msg
     */
    void visit(msg_init *msg) override;

  protected:
    std::shared_ptr<geom::mesh> m_meshData;
};

} // namespace ais

} // namespace xy
